add GTK_ARROW_NONE.
authorKristian Rietveld <kris@gtk.org>
Sun, 28 May 2006 12:37:21 +0000 (12:37 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Sun, 28 May 2006 12:37:21 +0000 (12:37 +0000)
2006-05-28  Kristian Rietveld  <kris@gtk.org>

* gtk/gtkenums.h: add GTK_ARROW_NONE.

* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_update_column): always
"show" the arrow if sort_column_id >= 0, only set arrow type if
this column is the column we are currently sorting on. (#331338).

ChangeLog
ChangeLog.pre-2-10
gtk/gtkenums.h
gtk/gtktreeviewcolumn.c

index 08121d15f3467c6cc6f8a69b96419abb877bacde..ad489de56a3659a4e6dff40c3b918b28c51b2413 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-05-28  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkenums.h: add GTK_ARROW_NONE.
+
+       * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_update_column): always
+       "show" the arrow if sort_column_id >= 0, only set arrow type if
+       this column is the column we are currently sorting on. (#331338).
+
 2006-05-27  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkrecentchoosermenu.c: Avoid trivial differences
index 08121d15f3467c6cc6f8a69b96419abb877bacde..ad489de56a3659a4e6dff40c3b918b28c51b2413 100644 (file)
@@ -1,3 +1,11 @@
+2006-05-28  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkenums.h: add GTK_ARROW_NONE.
+
+       * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_update_column): always
+       "show" the arrow if sort_column_id >= 0, only set arrow type if
+       this column is the column we are currently sorting on. (#331338).
+
 2006-05-27  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkrecentchoosermenu.c: Avoid trivial differences
index 1c483de62bb24bfa364f43a8b67b64f55ed4fb3a..89de9fa91c34320dc614d428afc70275b83251ab 100644 (file)
@@ -59,7 +59,8 @@ typedef enum
   GTK_ARROW_UP,
   GTK_ARROW_DOWN,
   GTK_ARROW_LEFT,
-  GTK_ARROW_RIGHT
+  GTK_ARROW_RIGHT,
+  GTK_ARROW_NONE
 } GtkArrowType;
 
 /* Attach options (for tables) */
index 97293ad956c9686964725f82226c36d6113b7c24..c567731560cf503165f974f0253c1a069a8df572 100644 (file)
@@ -842,10 +842,12 @@ gtk_tree_view_column_create_button (GtkTreeViewColumn *tree_column)
 static void 
 gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column)
 {
+  gint sort_column_id;
   GtkWidget *hbox;
   GtkWidget *alignment;
   GtkWidget *arrow;
   GtkWidget *current_child;
+  GtkArrowType arrow_type = GTK_ARROW_NONE;
 
   /* Create a button if necessary */
   if (tree_column->visible &&
@@ -896,25 +898,33 @@ gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column)
                                          "");
     }
 
-  switch (tree_column->sort_order)
+  if (gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (GTK_TREE_VIEW (tree_column->tree_view)->priv->model),
+                                           &sort_column_id,
+                                           NULL))
     {
-    case GTK_SORT_ASCENDING:
-      gtk_arrow_set (GTK_ARROW (arrow),
-                    GTK_ARROW_DOWN,
-                    GTK_SHADOW_IN);
-      break;
+      if (sort_column_id == tree_column->sort_column_id)
+       {
+         switch (tree_column->sort_order)
+           {
+             case GTK_SORT_ASCENDING:
+               arrow_type = GTK_ARROW_DOWN;
+               break;
 
-    case GTK_SORT_DESCENDING:
-      gtk_arrow_set (GTK_ARROW (arrow),
-                    GTK_ARROW_UP,
-                    GTK_SHADOW_IN);
-      break;
+             case GTK_SORT_DESCENDING:
+               arrow_type = GTK_ARROW_UP;
+               break;
           
-    default:
-      g_warning (G_STRLOC": bad sort order");
-      break;
+             default:
+               g_warning (G_STRLOC": bad sort order");
+               break;
+           }
+       }
     }
 
+  gtk_arrow_set (GTK_ARROW (arrow),
+                arrow_type,
+                GTK_SHADOW_IN);
+
   /* Put arrow on the right if the text is left-or-center justified, and on the
    * left otherwise; do this by packing boxes, so flipping text direction will
    * reverse things
@@ -934,7 +944,7 @@ gtk_tree_view_column_update_button (GtkTreeViewColumn *tree_column)
     }
   g_object_unref (arrow);
 
-  if (tree_column->show_sort_indicator)
+  if (tree_column->sort_column_id >= 0)
     gtk_widget_show (arrow);
   else
     gtk_widget_hide (arrow);